from dataclasses import dataclass

from .common import ApplicationException


@dataclass
class UserIdNotExist(ApplicationException):
    user_id: int

    @property
    def message(self) -> str:
        return f"User with user_id {self.user_id} not exists"


@dataclass
class UserTgIdNotExist(ApplicationException):
    telegram_id: int

    @property
    def message(self) -> str:
        return f"User with telegram_id {self.telegram_id} not exists"


@dataclass
class UserPhoneNotExist(ApplicationException):
    phone: int

    @property
    def message(self) -> str:
        return f"User with phone {self.phone} not exists"


@dataclass
class UserIdAlreadyExist(ApplicationException):
    ...


@dataclass
class UserTgIdAlreadyExist(ApplicationException):
    ...
